package io;

import java.io.*;
import java.nio.charset.StandardCharsets;
import java.util.Scanner;

//使用流连接完成PW的创建
public class PWDemo2 {
    public static void main(String[] args) throws FileNotFoundException {
        /*
            PrintWriter->BufferedWriter->OutputStreamWriter->FileOutputStream
            PW:负责按行写出字符串
            BW:块写文本数据加速(内部有一个默认8192长度的字符数组)
            OSW:将写出的字符转字节
            FOS:将字节写入到文件中
         */
        FileOutputStream fos=new FileOutputStream("pw.txt");//文件流写入
        OutputStreamWriter osw=new OutputStreamWriter(fos, StandardCharsets.UTF_8);//字符转换流
        BufferedWriter bw=new BufferedWriter(osw);//字符缓冲流 块
        PrintWriter pw=new PrintWriter(bw);//缓冲字符换行流 行
        Scanner scan = new Scanner(System.in);//扫描
        System.out.println("请输入内容,单独输入exit退出:");
 /*
            PrintWriter如果第一个参数为流，那么就支持再传入一个参数为boolean值。
            如果这个值为true则是打开了自动行刷新功能。
         */
        while (true){
            String input=scan.nextLine();//用户输入
            if ("exit".equalsIgnoreCase(input)){ //忽略大小写比较字符串
                break;
            }
            pw.println(input); //缓冲字符流换行输出
            /*
                当PW开启了自动行刷新后，每当我们调用一次println方法后就会自动flush.
             */
            pw.flush();
        }
        pw.close();















    }
}
